package com.cari.oa.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.cari.oa.dao.BaseDao;
import com.cari.oa.dao.SysDictGroupDao;
import com.cari.oa.domain.SysDictGroupEntity;

@Service
@Transactional(rollbackFor = Exception.class)
public class SysDictGroupService extends BaseService<SysDictGroupEntity> {

	@Resource
	private SysDictGroupDao sysDictGroupDao;
	
	@Override
	public BaseDao<SysDictGroupEntity> getDao() {
		return sysDictGroupDao;
	}
	
    /**
     * 根据英文名获取系统字典组实体
     * @param enname 系统字典组英文名
     * @return 系统字典组对象
     */
	@Transactional(readOnly = true)
    public SysDictGroupEntity getByEnname(String enname) {
    	return sysDictGroupDao.getByEnname(enname);
    }
    
    /**
     * 判断该英文名实体对象是否存在
     * @param enname 系统字典组英文名
     * @return 是否存在
     */
	@Transactional(readOnly = true)
    public boolean existByEnname(String enname) {
    	return sysDictGroupDao.existByEnname(enname);
    }
    
    /**
     * 分页查询系统字典组实体对象
     * @param enname 系统字典组英文名
     * @param alias 系统字典组别名
     * @param status 系统字典组状态
     * @param page 当前页
     * @param size 每页条数
     * @return 分页实体
     */
	@Transactional(readOnly = true)
    public List<SysDictGroupEntity> getPage(String enname, String alias, Integer status, int page, int size) {
    	return sysDictGroupDao.getPage(enname, alias, status, page, size);
    }
    
    /**
     * 查询的记录数
     * @param enname 系统操作英文名
     * @param alias 系统操作别名
     * @param status 系统字典组状态
     * @param moduleName 所属模块英文名
     * @return 记录数
     */
	@Transactional(readOnly = true)
    public long getCount(String enname, String alias, Integer status) {
    	return sysDictGroupDao.getCount(enname, alias, status);
    }

	/**
	 * 将字典组对象设置成不可用
	 * @param id 字典组ID
	 */
	public void deactivate(String id) {
		SysDictGroupEntity groupEntity = sysDictGroupDao.getById(id);
		groupEntity.setStatus(1);
		sysDictGroupDao.update(groupEntity);
	}
}
